/**
  **********************************************************************************************************************
  * @file    cot_os_config.h
  * @brief   该文件提供查询协作式多任务系统功能函数原型
  * @author  const_zpc    any question please send mail to const_zpc@163.com
  * @date    2025-5-10
  **********************************************************************************************************************
  *
  **********************************************************************************************************************
  */

/* Define to prevent recursive inclusion -----------------------------------------------------------------------------*/
#ifndef _COT_OS_CONFIG_H_
#define _COT_OS_CONFIG_H_

/**
  * @brief  定义同一时间可运行的最大独立栈任务数目
  */
#define COT_OS_MAX_UNIQUE_TASK              2

/**
  * @brief  定义同一时间可运行的最大共享栈任务数目
  */
#define COT_OS_MAX_SHARED_TASK              6

#if (COT_OS_MAX_SHARED_TASK > 0)
/**
  * @brief  定义单个共享栈任务栈备份的空间大小
  */
#define COT_OS_MAX_SHARED_BAK_STACK_SIZE    256

/**
  * @brief  定义共享栈任务进行切换预留栈的空间大小
  */
#define COT_OS_SHARED_TASK_JMP_STACK_SIZE    256
#endif

/**
  * @brief  定义任务名字最大长度
  * 
  */
#define COT_OS_TASK_NAME_LENGTH             16

// 禁止中断
#define COT_OS_DISABLE_IRQ()

// 使能中断
#define COT_OS_ENABLE_IRQ()

#if (COT_OS_MAX_UNIQUE_TASK != 0)
/**
  * @brief   根据不同平台定义堆栈获取和设置指针
  * 
  */
// #define COT_OS_GET_STACK(p)        __asm__ volatile("mov %%rsp, %0" : "=r" (p));
#define COT_OS_SET_STACK(p)        __asm__ volatile("mov %0, %%rsp" : : "r" (p) : "memory");

#endif

#endif


